package com.itheima.controller;

import com.itheima.pojo.Result;
import com.itheima.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @Description UploadController
 * @Author songyu
 * @Date 2024-01-24
 */
@Slf4j
@RestController
public class UploadController {

    // @PostMapping("/upload")
    // public String upload(String username, Integer age, MultipartFile image){
    //     log.info("上传文件接收数据：{}，{}",username,age);
    //     //目标：将上传的文件123.jpg存储到服务器磁盘d:/imgs/唯一值.jpg
    //
    //     //1.获取原始文件的扩展名
    //     //  获取原始文件名 123.jpg
    //     String originalFilename = image.getOriginalFilename();
    //     //  获取扩展名 .jpg
    //     String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
    //
    //     //2.生成唯一值文件名
    //     //uuid: 通用唯一码，生成唯一值的工具，jdk就提供了这个工具
    //     String uuid = UUID.randomUUID().toString();
    //     //定义唯一值文件名
    //     String fileName = uuid + extName;
    //
    //     try {
    //         //3.存储到磁盘d:/imgs/目录下
    //         image.transferTo(new File("d:/imgs",fileName));
    //         //4.返回成功
    //         return "上传成功";
    //     } catch (IOException e) {
    //        e.printStackTrace();
    //        return "上传失败";
    //     }
    //
    // }

    @Autowired
    private AliOSSUtils aliOSSUtils;

    /**
     * 文件上传
     * @param image
     * @return
     */
    @PostMapping("/upload")
    public Result upload(MultipartFile image){
        //1.通过aliOSSUtil工具类，将图片上传到阿里云，并且获取到图片路径
        String url = null;
        try {
            url = aliOSSUtils.upload(image);
        } catch (IOException e) {
            log.error("文件上传失败：{}", e.getMessage());
        }

        //2.返回图片路径
        return Result.success(url);
    }
}
